package com.sodimac.v2s.business
{
 	import com.adobe.cairngorm.business.ServiceLocator;
 	import com.sodimac.util.commons.UtilString;
 	
 	import flash.xml.XMLDocument;
 	import flash.xml.XMLNode;
 	
 	import mx.collections.ArrayCollection;
 	import mx.rpc.AsyncToken;
 	import mx.rpc.IResponder;
 	import mx.rpc.soap.WebService;
 	import mx.rpc.xml.SimpleXMLEncoder;	
	
	public class PicDelegate
	{
		
		private var service:WebService;
		private var responder:IResponder;		
		
		public function PicDelegate(responder:IResponder)
		{
			this.service = ServiceLocator.getInstance().getWebService("wsProformaInvoiceConjunta");
			this.responder = responder;
		}

		public function ConsultaProblemasPIC(cabecera:Object, 
											idEmpresa: String,  
											idPedidoCorp: Number):void
		{
			trace("PicDelegate.ConsultaProblemasPIC ("+ idPedidoCorp + " "+ idEmpresa +")");
			var payload:Object = new Object();
			payload.idEmpresa = idEmpresa;
			payload.idPedidoCorp = idPedidoCorp;
									
			var call:AsyncToken = service.consultaProductosPIC(cabecera, payload);
			call.addResponder( responder );
		}
		



		
		public function GrabarProductosPic(cabecera: Object, idPedidoCorp: Number,
										   strVersion: String, idProveedor: String,
										   strEstado: String, idEmpresa: String,
										   arrProductosPic: ArrayCollection):void
		{
			trace("PicDelegate.GrabarProductosPic (PedidoCorp="+ idPedidoCorp +")");
			var prodCorp:Array = new Array();
			var prodNac:Array = new Array();			
			var payload:Object = new Object();
			var deta:Object = new Object();
			var enc:Object = new Object();
			var j:int = 0;
			enc.idPedidoCorp = idPedidoCorp;
			enc.version = strVersion;
			enc.idProveedorCorp = idProveedor;
			enc.estado = strEstado;
			enc.idEmpresa = idEmpresa;
			payload.encabezadoPIC = enc;
			
			if (arrProductosPic.length >0)
			{
				var objProducto:Object;
				var array_cl:Array = new Array();
				var array_co:Array = new Array();
				var array_pe:Array = new Array();
				var array_ar:Array = new Array();
				
				for (j=0; j<arrProductosPic.length;j++)
				{				
					var pais:String = arrProductosPic[j]["pais"];
					if ( UtilString.isEmpty(pais))
					{
						objProducto = new Object();
						objProducto.idProductoCorp = arrProductosPic[j]["vin"];
						objProducto.cantVendor     = arrProductosPic[j]["vquantity"];
						objProducto.precioVendor   = arrProductosPic[j]["vprice"];
						objProducto.idProblema     = arrProductosPic[j]["problemId"];						
						objProducto.notaVendor     = arrProductosPic[j]["note"];
						
						prodCorp.push(objProducto);
					} 
					else
					{
						
 						objProducto = new Object();
						objProducto.sku = arrProductosPic[j]["sku"];
						objProducto.cantVendor   = arrProductosPic[j]["vquantity"];
						objProducto.precioVendor = arrProductosPic[j]["vprice"];
						objProducto.idProblema   = arrProductosPic[j]["problemId"];	
						objProducto.notaVendor   = arrProductosPic[j]["note"];					
						
						if (pais == "CL") {
							array_cl.push(objProducto);
						}else if (pais == "CO")
						{
							array_co.push(objProducto);
						} else if (pais == "PE")
						{
							array_pe.push(objProducto);
						}else if (pais == "AR")
						{
							array_ar.push(objProducto);
						}
					
					}
				
				}
				
				if (array_cl.length >0)
				{
					var objCL:Object = new Object();
					objCL.codigo = "CL";
					objCL.productoNac = array_cl;
					prodNac.push(objCL);					
				}
				
				if (array_co.length >0)
				{
					var objCO:Object = new Object();
					objCO.codigo = "CO";
					objCO.productoNac = array_co;
					prodNac.push(objCO);					
				}
				
				if (array_pe.length >0)
				{
					var objPE:Object = new Object();
					objPE.codigo = "PE";
					objPE.productoNac = array_pe;
					prodNac.push(objPE);					
				}
				
				if (array_ar.length >0)
				{
					var objAR:Object = new Object();
					objAR.codigo = "AR";
					objAR.productoNac = array_ar;
					prodNac.push(objAR);					
				}
																
			}
			
			if	(prodCorp.length > 0)
			{
				deta.productosCorp = prodCorp;
			}
			if	(prodNac.length > 0)
			{
				deta.productosCompraNac = prodNac;
			}			
						
			payload.detallePIC = deta;
					
			
/*             var qName:QName = new QName("form");
            var xmlDocument:XMLDocument = new XMLDocument();
            var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
            var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(payload, qName, xmlDocument);
            var xml:XML = new XML(xmlDocument.toString());
			trace("---------------------------");
			trace(xml.toString());	
			trace("---------------------------");	 */		
			
			var call:AsyncToken  = service.grabarProductosPIC(cabecera,payload);
			call.addResponder( responder );
		}


		

	}
}

